package com.baseweb.webadmin.service;

import com.baseweb.webadmin.core.model.pojo.Resc;
import com.baseweb.webadmin.core.model.pojo.RescRoleKey;

import java.util.List;

public interface RoleRescService {
    /**
     * 通过id取得一条资源信息
     *
     * @param rescId
     * @return
     */
    public Resc selectRescById(Integer rescId);

    /**
     * 获得所有资源信息集合
     *
     * @return
     */

    public List<Resc> selectRescs();

    /**
     * 通过资源名称和资源url查出当前资源信息
     *
     * @param name
     * @param resString
     * @return
     */
    public Resc selectRescByNameAndResString(String name, String resString);

    /**
     * 通过角色id取得中间表
     *
     * @param roleId
     * @return
     */
    public List<RescRoleKey> selectRescRoleKeyByRoleId(Integer roleId);

    /**
     * 插入资源信息
     *
     * @param resc
     * @return
     */
    public int insertResc(Resc resc);

    /**
     * 通过id删除当前资源信息
     *
     * @param rescId
     * @return
     */

    public int deleteRescById(Integer rescId);

    /**
     * 通过rescId删除角色资源中间表信息
     *
     * @param rescId
     * @return
     */
    public int deleteRescRoleByRescId(Integer rescId);

    /**
     * 通过id删除角色资源中间表信息
     *
     * @param roleId
     * @return
     */
    public int deleteRescRoleByRoleId(Integer roleId);

    /**
     * 修改资源信息
     *
     * @param resc
     * @return
     */
    public int updateResc(Resc resc);

    /**
     * 添加角色资源中间表信息
     *
     * @param rescRole
     * @return
     */
    public int insertRescRole(RescRoleKey rescRole);

    /**
     * 通过角色名称判断角色是否存在
     *
     * @param name
     * @return
     */
    public Boolean selectRescByName(String name);

    public List<Resc> getRescByRoleId(Integer roleId, Integer fatherId);

     /**
     * 根据资源id获取
     * 他下面的子孩子
     * @param fatherId
     * @return
     */
    public List<Resc> getRescByFatherId(Integer fatherId);

    //获取指定role的资源树
    List<Resc> getRescByRole(Integer id);

    int deleteByPrimaryKey(RescRoleKey key);
    /**
     * 根据资源id获取所以资源
     * @param rescIds
     * * @return
     * */
    public List<Resc> getRescByIds(List<Integer> rescIds);


}
